package cn.harry.modular.ai.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import lombok.Getter;
import lombok.Setter;

import java.io.Serial;
import java.time.LocalDateTime;
import java.util.List;

import com.baomidou.mybatisplus.annotation.TableName;
import cn.harry.common.base.BaseEntity;
/**
 * AI 聊天消息实体对象
 *
 * @author harry
 * @公众号 Harry技术
 */
@Getter
@Setter
@TableName("ai_chat_message")
public class ChatMessage extends BaseEntity {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 对话编号
     */
    private Long conversationId;
    /**
     * 回复编号
     */
    private Long replyId;
    /**
     * 用户编号
     */
    private Long userId;
    /**
     * 角色编号
     */
    private Long roleId;
    /**
     * 段落编号数组
     */
    @TableField(typeHandler = JacksonTypeHandler.class)
    private List<Long> segmentIds;
    /**
     * 消息类型
     */
    private String type;
    /**
     * 模型标识
     */
    private String model;
    /**
     * 模型编号
     */
    private Long modelId;
    /**
     * 消息内容
     */
    private String content;
    /**
     * 是否携带上下文
     */
    private Boolean useContext;
    /**
     * 有效状态，0:无效 1:有效
     */
    @TableLogic
    private Integer valid;
}
